<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        /*
            x(?=y)  前瞻肯定断言  匹配 `x` ，仅当后面跟着 `y`
            x(?!y)  前瞻否定断言  匹配 `x` ，仅当后面不跟 `y`
            
            (?<=y)x  后瞻肯定断言  匹配 `x` ，仅当跟在 `y` 后面
            (?<!y)x  后瞻否定断言  匹配 `x` ，仅当不跟在 `y` 后面
        */
        
        var str = "20kg rice price $300";

		// 找到后面跟着kg的数字
        console.log(str.match(/\d+(?=kg)/g));
		// 找到后面不跟着kg的数字
        console.log(str.match(/\d+(?!\d*kg)/g));
		// 找到前面跟着$的数字
        console.log(str.match(/(?<=\$)\d+/g));
		// 找到前面不跟着$的数字
        console.log(str.match(/(?<!\$\d*)\d+/g));

        var str1 = "2 servings of rice are worth 30￥";
        // 如果我们要选择后面带￥的数字
        console.log(str1.match(/\d+(?=￥)/g));
        // 如果我们选择后面不带￥的数字
        console.log(str1.match(/\d(?!\d*￥)/g));

        var str = "1 duck costs ￥28";
        // 如果我们要选择前面带￥的数字
        console.log(str.match(/(?<=￥)\d+/g));
        // 如果我们选择前面不带￥的数字
        console.log(str.match(/(?<!￥\d*)\d+/g));
    </script>
</body>
</html>